package com.wl.designpattern.adapter;


/**
 * 适配器模式
 *
 * 将一个类的接口变换成客户端所期待的另一种接口，从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
 *
 * UML (method +:public #:protected -:private ~:package)
 *    <interface>
 *      Adapter              <-------- Client
 *    +operation()
 *
 *    ConcreteAdapter                  Adaptee
 *    -adaptee               <-------- +adaptedOperation
 *    +operation()
 *
 *    Adpater(适配器接口) 目标角色
 *    Adaptee(被适配角色) 源角色
 *    ConcreteAdapter(具体适配器)
 *
 * Created by wangliang on 2021/2/22.
 */
public class Test {
    public static void main(String[] args) {
        //类对象适配方式
        Vga vga = new Typec2Vga1();
        vga.vgaInterface(); // 适配器将typec转换成vga
        System.out.println("显示屏对接适配器，手机成功投影到显示屏!");

        //对象适配器适配方式
        Electric electric = new Electric();
        System.out.println("默认电压：" + electric.output_220v());

        Adapter phoneAdapter = new PhoneAdapter(electric);
        System.out.println("适配转换后的电压：" + phoneAdapter.convert_5v());

        //android 应用

        // BaseAdapter
        // Glide 中 transform

    }
}
